// components/table/table.js
Component({
  properties: {
    columns: {  // 列配置
      type: Array,
      value: []
    },
    data: {     // 表格数据
      type: Array,
      value: []
    },
    rowHeight: { // 行高
      type: Number,
      value: 22
    },
    headerHeight: { // 一级表头高度
      type: Number,
      value: 26
    },
    subHeaderHeight: { // 二级表头高度
      type: Number,
      value: 20
    },
    bodyHeight: { // 表格内容区域高度
      type: Number,
      value: 400
    }
  },

  data: {
    totalWidth: 0
  },

  observers: {
    'columns': function(columns) {
      this.calculateTotalWidth(columns)
    }
  },

  methods: {
    cellTap(e){
      this.triggerEvent('cellTap',e.currentTarget.dataset)
    },
    calculateTotalWidth(columns) {
      let width = 0
      columns.forEach(col => {
        if (col.children) {
          width += col.children.reduce((sum, child) => sum + (Number(child.width) || 200), 0)
        } else {
          width += Number(col.width) || 200
        }
      })
      this.setData({ totalWidth: width })
    }
  },
})